# coding=utf-8
import requests

login_data = {
    "method": "post",
    "url": "http://192.168.10.131:8888/api/private/v1/login",
    "data": {"username": "admin", "password": "123456"}
}

upload_data = {
    "method": "post",
    "url": "http://192.168.10.131:8888/api/private/v1/upload",
    "headers": None,
    "files": None
}

# 获取 token
res = requests.request(**login_data)
token = res.json()["data"]["token"]

# 文件上传
upload_data["headers"] = {"Authorization": token}

# files 对应的value 类似与 {参数名: 元组}
    # 参数名即接口文档中要求要传的参数名, 如该项目1.9图片上传接口参数名是 file
    # 参数值元组, 有三个参数(参数1, 参数2, 参数3)
        # 参数1: 上传的文件名叫什么, 如果没传, 则默认使用 open()函数 中打开的文件名
        # 参数2: 用 open()函数 打开的文件对象
        # 参数3: 文件类型
upload_data["files"] = {"file": ("位图.png", open("./files/位图.png", "rb"), "png")}
res2 = requests.request(**upload_data)
print(res2.json())

# 当然也可以直接填进参数中, 这种方法就是填入测试用例中, 在之前的框架中自动解析进去
upload_data = {
    "method": "post",
    "url": "http://192.168.10.131:8888/api/private/v1/upload",
    "headers": None,
    "files": {"file": ("位图.png", open("./files/位图.png", "rb"), "png")}
}